// pages/songDetail/songDetail.js
import Pubsub from 'pubsub-js'
import request from '../../utils/request.js'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    isPlay: false,//标识音月是否播放
    songInfo: {},//歌曲信息
    musicUrl: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //路由跳转传参获取song的id
    console.log('songId值为',JSON.parse(options.songId));
    let songId = options.songId
    //获取歌曲详情的请求
    request.GET('/song/detail',{
      ids:songId
    }).then(res=> {
      console.log('歌曲详情请求成功',res);
      let songInfo = res.songs[0]
      console.log(songInfo);
      this.setData({
        songInfo
      })
      //动态修改窗口的标题
      wx.setNavigationBarTitle({
        title: this.data.songInfo.name
      })
      //获取音乐的播放链接
      request.GET('/song/url',{id:songInfo.id}).then(res=> {
        console.log('音乐播放地址为',res);
        let musicUrl = res.data[0].url
        this.setData({
          musicUrl
        })
      }).catch(err=> {
        console.log('视频播放地址请求失败',err);
      })
    }).catch(err => {
      console.log('歌曲详情请求失败',err);
    })

    //创建一个音乐播放实例
    this.backgroundAudioManager = wx.getBackgroundAudioManager()
    //监视音乐播放暂停
    this.backgroundAudioManager.onPlay(()=> {
      this.backgroundAudioManager.play()
    })
  },
  //点击播放暂停的回调
  musicPlay(){
    this.setData({
      isPlay: !this.data.isPlay
    })
    this.musicControl(this.data.isPlay)
  },
  //控制音乐暂停播放的功能函数
  musicControl(isPlay){
    if(isPlay){
      // 播放音乐
      //音频的链接
      this.backgroundAudioManager.src = this.data.musicUrl
      this.backgroundAudioManager.title = this.data.songInfo
      this.backgroundAudioManager.play()
    }else{
      // 暂停音乐
      this.backgroundAudioManager.pause()
    }
  },
  //点击切歌的回调
  handleSwitch(event){
    console.log(event);
    let type = event.currentTarget.id
    //发布订阅消息给推荐也买呢
    Pubsub.publish('switchType',type)
    if(type === 'next'){
      console.log('xiayishou');
    }else{
      console.log('上一首');
    }
    PubSub.unsubscribe('switchType')
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})